A funcionalidade padrão do programa LibreOffice Calc não inclui funções para tradução de texto para outros idiomas. No entanto, qualquer usuário pode criar tal função de forma independente.
Neste artigo, veremos a função personalizada GoogleTranslate_YouLibreCalc(), que permitirá traduzir texto diretamente em uma célula de qualquer planilha.
A função usa o site para traduzir o texto "Google Tradutor" e pode ser usado em qualquer fórmula de forma independente ou em conjunto com outras funções padrão.
Adicionar função Google Translate , abra o menu Tools - Macros - Edit Macros... , selecione Módulo1 e copie o seguinte texto no módulo:
Option VBASupport 1
Function GoogleTranslate_YouLibreCalc(TextToTranslate As String, SrcLang As String, TrgLang As String)
' moonexcel.com.ua
Dim FCalc As Object
Dim WebsiteURL As String
Dim XMLHTTP As Object
Dim oHTML As Object
Dim HTMLDoc As HTMLDocument
Dim ObjClass As Object
FCalc = CreateUnoService("com.sun.star.sheet.FunctionAccess")
TextToTranslate = FCalc.callFunction("ENCODEURL", Array(TextToTranslate))
SrcLang = LCase(SrcLang)
TrgLang = LCase(TrgLang)
IF SrcLang = "zh-cn" Then SrcLang = "zh-CN"
IF SrcLang = "zh-tw" Then SrcLang = "zh-TW"
IF TrgLang = "zh-cn" Then TrgLang = "zh-CN"
IF TrgLang = "zh-tw" Then TrgLang = "zh-TW"
WebsiteURL = "https://translate.google.com/m?sl=" + SrcLang + "&tl=" + TrgLang + "&hl=en&q=" + TextToTranslate
' Executamos a chamada da API para o servidor web usando a solicitação AJAX
Set XMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")
XMLHTTP.Open "GET", WebsiteURL, False
XMLHTTP.Send
' Criamos um documento HTML usando o texto de resposta da solicitação AJAX
Set oHTML = CreateObject("HTMLFile")
With oHTML
.Open
.Write XMLHTTP.responseText
.Close
End With
' Convertemos texto HTML em um modelo de objeto usando a biblioteca de elementos da web Microsoft Biblioteca HTML Object
Set HTMLDoc = oHTML
Set ObjClass = HTMLDoc.getElementsByClassName("result-container").Item(0)
If Not ObjClass Is Nothing Then
GoogleTranslate_YouLibreCalc = ObjClass.innerText
End If
' Nós liberamos a memória
Set ObjClass = Nothing
Set oHTML = Nothing
Set XMLHTTP = Nothing
End Function
A seguir, feche Macro Editor e volte para a planilha LibreOffice Calc , selecione qualquer célula e use nosso novo recurso GoogleTranslate_YouLibreCalc() .
Você também pode usar a função GOOGLETRANSLATE() instalando a extensão gratuita YouLibreCalc.oxt ou sua versão completa YLC_Utilities.oxt .
Depois disso, esta função estará disponível em todos os arquivos que serão abertos em LibreOffice Calc.